package main

import "fmt"

// 测试for循环时赋值的一个坑

func main() {
	arr := []int{1, 2}
	res := []*int{}

	fmt.Println(&arr[0])
	fmt.Println(&arr[1])
	for _, v := range arr {
		fmt.Println(&v)
		res = append(res, &v)
	}

	fmt.Println(*res[0], *res[1])
}

// 输出：
// 0xc0000180e0
// 0xc0000180e8
// 0xc0000180c8
// 0xc0000180c8
// 2 2

// 可以看出for循环中，&v实际上是对循环内部同一个短变量的取址，因此res中存的其实都是同一个地址，这个地址中的值实际上是最后一次循环赋的值；
// 那若要取所有元素地址怎么做呢？参考slice6.go
